package cn.baker.rabbitmq.config;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

/**
 * 死信队列配置
 * @author yuanyu
 */
// @Configuration
@ConditionalOnProperty("trans.rabbitMq.dlxEnabled")
@AutoConfigureAfter(TransRabbitConfig.class)
public class DlxConfig {

    // /**
    //  * 死信交换机
    //  */
    // @Bean
    // public TopicExchange dlxExchange() {
    //     return new TopicExchange("trans.rabbitMq.exchange.dlx");
    // }
    // /**
    //  * 死信队列
    //  */
    // @Bean
    // public Queue dlxQueue() {
    //     return new Queue("trans.rabbitMq.queue.dlx", true, false, false);
    // }
    // /**
    //  * 绑定
    //  */
    // @Bean
    // public Binding dlxBinding() {
    //     return BindingBuilder
    //             .bind(dlxQueue())
    //             .to(dlxExchange())
    //             .with("#");
    // }
    //
    // /**
    //  * 死信监听
    //  * @param connectionFactory
    //  * @param dlxListener
    //  * @return
    //  */
    // @Bean
    // public SimpleMessageListenerContainer deadLetterListenerContainer(@Qualifier("transRabbitConnectionFactory") ConnectionFactory connectionFactory, @Qualifier("dlxListener") DlxListener dlxListener) {
    //     SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
    //     container.setQueues(dlxQueue());
    //     container.setExposeListenerChannel(true);
    //     container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    //     container.setMessageListener(dlxListener);
    //     // 设置消费者能处理消息的最大个数
    //     container.setPrefetchCount(100);
    //     return container;
    // }

}
